package com.hwadee.caixiang.entity;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;


public class Cart {
	// Map集合用商品的id做map的key,购物项作为map的value
	private Map<Integer, CartItem> map = new HashMap<Integer, CartItem>();
	
	public Collection<CartItem> getCartItems() {
		return map.values();
	}

	private Double total = 0d;

	public void addCart(CartItem cartItem) {
		Integer pid = cartItem.getProduct().getPid();
		if (map.containsKey(pid)) {
			// 判断购物车里是否有商品
			CartItem _cartItem = map.get(pid);
			_cartItem.setCount(_cartItem.getCount() + cartItem.getCount());
		} else {
			// 购物车中不存在该购物项
			map.put(pid, cartItem);
		}
		// 总计:
		total += cartItem.getSubtotal();
	}

	
	public void removeCart(Integer pid) {
		// 将购物项从map集合中移除:
		CartItem cartItem = map.remove(pid);
		// 设置总计钱数
		if (total >= cartItem.getSubtotal()) {
			total -= cartItem.getSubtotal();
		}

	}

	
	public void clearCart() {
		map.clear();
		total = 0d;
	}

	public Double getTotal() {
		return total;
	}

	public void setTotal(Double total) {
		this.total = total;
	}

}
